package com.pocket.demo.business.controller.vo;

import com.pocket.demo.base.api.BaseDO;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.Size;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Range;

/**
 * @author zhaozhile
 */
@EqualsAndHashCode(callSuper = true)
@Schema(description = "管理后台 - 酒店列表查询 response VO")
@Data
public class HotelSaveReqVO extends BaseDO {

    private Long id;

    @Size(min = 1, max = 255)
    @Schema(name = "name", title = "酒店名称；例：7天酒店")
    private String name;

    @Size(min = 1, max = 255)
    @Schema(name = "address", title = "酒店地址；例：航头路")
    private String address;

    @Positive
    @Schema(name = "price", title = "酒店价格；例：329")
    private Integer price;

    @Range(min = 0, max = 10)
    @Schema(name = "score", title = "酒店评分；例：45，就是4.5分")
    private Integer score;

    @Size(min = 1, max = 32)
    @Schema(name = "brand", title = "酒店品牌；例：如家")
    private String brand;

    @Size(min = 1, max = 32)
    @Schema(name = "city", title = "所在城市；例：上海")
    private String city;

    @Size(min = 1, max = 16)
    @Schema(name = "starName", title = "酒店星级，从低到高分别是：1星到5星，1钻到5钻")
    private String starName;

    @Size(min = 1, max = 255)
    @Schema(name = "business", title = "商圈；例：虹桥")
    private String business;

    @Range(min = 0, max = 180)
    @Schema(name = "longitude", title = "经度；例：120.3925")
    private String longitude;

    @Range(min = 0, max = 90)
    @Schema(name = "latitude", title = "纬度；例：31.2497")
    private String latitude;

    @Size(min = 1, max = 16)
    @Schema(name = "pic", title = "酒店图片")
    private String pic;
}
